import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;

/**
 * Author: Daniel Michalski
 * Date: 10.03.13
 */

public class IteratorTest {
    public static void main(String[] args) {
        ArrayList<String> al = new ArrayList<String>();

        al.add("C");
        al.add("A");
        al.add("E");
        al.add("B");
        al.add("D");
        al.add("F");

        // użycie iteratora do wyświetlenia zawartości
        System.out.println("Oryginalna zawartość al: ");
        Iterator<String> itr = al.iterator();
        while (itr.hasNext()) {
            String element = itr.next();
            System.out.print(element + " ");
        }
        System.out.println();

        // modyfikacja iterowanych elementów
        ListIterator<String> litr = al.listIterator();
        while (litr.hasNext()) {
            String element = litr.next();
            litr.set(element + "+");
        }

        System.out.println("Zmodyfikowana zawartość al: ");
        itr = al.iterator();
        while (itr.hasNext()) {
            String element = itr.next();
            System.out.print(element + " ");
        }
        System.out.println();

        // wyświetlenie tablicy od końca
        System.out.println();
        while (litr.hasPrevious()) {
            String element = litr.previous();
            System.out.print(element + " ");
        }

        ArrayList<Integer> vals = new ArrayList<Integer>();

        vals.add(1);
        vals.add(2);
        vals.add(3);
        vals.add(4);
        vals.add(5);

        System.out.println("\n");
        System.out.print("Oryginalna zawartość vals: ");
        for (int v : vals)
            System.out.print(v + " ");
        System.out.println();

        int sum = 0;
        for (int val : vals)
            sum += val;

        System.out.println("Suma zawartośći wynosi: " + sum);
    }
}
